package com.swak.bean;

import com.swak.utils.bean.BeanCopier;

/**
 * 这里是模拟动态生成转换代码
 * 1. 类型名称一致才能拷贝
 * 2. 如果是一方是 Map 则需要使用类型转换才能实现转换
 * 
 * @author 618lf
 */
public class BeanDTO_BeanPO$BeanCopier implements BeanCopier<BeanA, BeanB> {

	@Override
	public BeanB transform(BeanA dto) {
		BeanB bean = new BeanB();
		bean.setAge(dto.getAge());
		// ...
		return bean;
	}

	@Override
	public BeanA convert(BeanB po) {
		BeanA bean = new BeanA();
		bean.setAge(po.getAge());
		// ...
		return bean;
	}

//	@Override
//	public Classify<BeanA, BeanB> classify(List<BeanA> dtos, List<BeanB> pos) {
//		Classify<BeanA, BeanB> classify = new Classify<>();
//		if (dtos == null || dtos.size() == 0) {
//			classify.setDetetes(dtos);
//			return classify;
//		}
//		if (pos == null || pos.size() == 0) {
//			classify.setInserts(dtos);
//			return classify;
//		}
//		for (BeanA dto : dtos) {
//			if (dto.getId() == null) {
//				classify.getInserts().add(dto);
//				continue;
//			}
//			BeanB found = null;
//			for (BeanB po : pos) {
//				if (dto.getId().equals(po.getId())) {
//					found = po;
//					break;
//				}
//			}
//			if (found != null) {
//				classify.getUpdates().add(dto.setId(found.getId()));
//			}
//		}
//		for (BeanB po : pos) {
//			boolean found = false;
//			for (BeanA dto : dtos) {
//				if (po.getId().equals(dto.getId())) {
//					found = true;
//					break;
//				}
//			}
//			if (!found) {
//				classify.getDetetes().add(new BeanA().setId(po.getId()));
//			}
//		}
//		return classify;
//	}
}